// 导入封装好的请求工具，用于发送HTTP请求
import request from '@/utils/request'

/**
 * 登录方法
 * @param {string} username - 用户名
 * @param {string} password - 密码
 * @param {string} code - 验证码
 * @param {string} uuid - 验证码唯一标识，用于验证验证码有效性
 * @returns {Promise} - 返回一个Promise对象，用于处理登录请求结果
 */
export function login(username, password, code, uuid) {
  // 构建请求数据对象，包含登录所需的参数
  const data = {
    username,
    password,
    code,
    uuid
  }
  // 发送登录请求
  return request({
    url: '/login',  // 登录接口地址
    headers: {      // 请求头配置
      isToken: false,       // 标识不需要携带令牌
      repeatSubmit: false   // 标识不需要防重复提交处理
    },
    method: 'post',  // 请求方法为POST
    data: data       // 将登录数据作为请求体发送
  })
}

/**
 * 注册方法
 * @param {Object} data - 注册所需的用户信息数据对象
 * @returns {Promise} - 返回一个Promise对象，用于处理注册请求结果
 */
export function register(data) {
  return request({
    url: '/register',  // 注册接口地址
    headers: {         // 请求头配置
      isToken: false   // 标识不需要携带令牌
    },
    method: 'post',    // 请求方法为POST
    data: data         // 将注册数据作为请求体发送
  })
}

/**
 * 获取用户详细信息
 * @returns {Promise} - 返回一个Promise对象，用于处理请求结果
 */
export function getInfo() {
  return request({
    url: '/getInfo',  // 获取用户信息的接口地址
    method: 'get'     // 请求方法为GET
  })
}

/**
 * 退出登录方法
 * @returns {Promise} - 返回一个Promise对象，用于处理退出请求结果
 */
export function logout() {
  return request({
    url: '/logout',  // 退出登录的接口地址
    method: 'post'   // 请求方法为POST
  })
}

/**
 * 获取验证码图片
 * @returns {Promise} - 返回一个Promise对象，用于处理请求结果（通常是验证码图片相关数据）
 */
export function getCodeImg() {
  return request({
    url: '/captchaImage',  // 获取验证码图片的接口地址
    headers: {             // 请求头配置
      isToken: false       // 标识不需要携带令牌
    },
    method: 'get',         // 请求方法为GET
    timeout: 20000         // 超时时间设置为20秒
  })
}
